home *** CD-ROM | disk | FTP | other *** search
- $RCSfile: SymbolFileFormat.txt $
- Description: Symbol file format used by Oberon-A
-
- Created by: fjc (Frank Copeland)
- $Revision: 1.4 $
- $Author: fjc $
- $Date: 1995/01/26 00:07:17 $
-
- Copyright © 1994, Frank Copeland.
- This file is part of Oberon-A.
- See Oberon-A.doc for conditions of use and distribution.
- ________________________________________________________________________
-
-
- INTRODUCTION
-
- This document describes the symbol file format used by Oberon-A.
-
- SYMBOL FILE FORMAT
-
- SymTag = 53594D08H; (* "SYM" + version # *)
-
- (* structure forms *)
- Undef * = 0H; Byte * = 1H; Bool * = 2H; Char * = 3H; SInt * = 4H;
- Int * = 5H; LInt * = 6H; Real * = 7H; LReal * = 8H; BSet * = 9H;
- WSet * = 0AH; Set * = 0BH; String * = 0CH; NilTyp * = 0DH;
- NoTyp * = 0EH; PtrTyp * = 0FH; CPtrTyp * = 10H; BPtrTyp * = 11H;
- Word * = 12H; Longword * = 13H; TypeTag * = 14H;
-
- (* terminal symbols for symbol file elements *)
- eUndef = 0H; eCon = 1H; eTypE = 2H; eTyp = 3H; eVar = 4H; eXProc = 5H;
- eLibCall = 6H; eM2Proc = 7H; eCProc = 8H; eAProc = 9H; ePointer = 0AH;
- eProcTyp = 0BH; eArray = 0CH; eDynArr = 0DH; eRecord = 0EH;
- eParList = 0FH; eValPar = 10H; eVarPar = 11H; eVarArg = 12H;
- eFldList = 13H; eFld = 14H; eHPtr = 15H; eHProc = 16H; eTProcE = 17H;
- eTProc = 18H; eFixup = 19H; eMod = 1AH; eExtLib = 1BH;
-
- SymbolFile = SymTag:4 modAnchor {element}.
- modAnchor = eMod key:4 name.
-
- element = eCon constant
- | (eTypE | eTyp) ref mno name
- | (eVar | eFld) ref offset visible name
- | (eValPar | eVarPar) ref offset name
- | eParList {element}
- ( eXProc ref
- | (eLibCall | eTProcE) ref ref offset
- | (eM2Proc | eCProc | eAProc) ref name
- | eLibCall2 ref offset offset )
- name
- | ePointer ref mno sysflg dscadr
- | eParList {element} ProcTyp ref mno
- | eArray ref mno size bndadr nofel
- | eDynArr ref mno size lenoff
- | eFldList {element} (eRecord ref mno size sysflg dscadr)
- | eHPtr offset
- | eTProc ref offset
- | eFixup ref ref
- | eExtLib name
- | modAnchor.
-
- constant = (Byte | Bool | Char | SInt | SSet) val name
- | (Int | Set) val name
- | (LInt | Real | LReal | LSet) val name
- | String sadr len [char] name
- | Nil name.
-
- name = {char} 0X
-
-